At its most basic level, Object-oriented programming (OOP) can be defined as a programming paradigm that is centered on the use of “objects”, which are data structures consisting of data fields and methods together with their interactions. OOP increases the efficiency of application development through the concept of “reuse”, which means that a collection of programming code modules could be fitted together like the gears of a machine in order to collectively perform a desired function. This has allowed software application developers to create individual objects for use in their programs and then share them with, or license them to, other developers having a need for similar functionality as that provided by a particular object.
As the experience of computing has changed over the years, so too has the nature and need for computer software application development. For example, cellular telephones have evolved into “smart phones”, capable of providing many personal computing features from a mobile computing device. As such, demand continues to increase for computer applications specifically designed for the unique configurations and needs of mobile computing devices.
OOP is a model that allows developers to quickly adapt to the rapidly evolving needs of mobile computing through object (i.e., application component) reuse. Some developers have openly shared application components that they necessarily developed to provide a specific function where a solution did not previously exist. This has led to a market that allows developers to continue to benefit from the collaborative environment fostered by OOP, while also receiving compensation for their efforts.